package chapter05;

public class Java03_Object {

    public static void main(String[] args) {
        // TODO 常用类和对象-数组-二维数组
        // 创建数组变量时，JVM会为数组进行初始化赋值；基本数据类型的数组，初始值就是这个类型的默认值
        int[] nums = new int[3];
        for (int num : nums) {
            System.out.println(num);
        }
        System.out.println("--------------------------");
        double[] nums1 = new double[3];
        for (double num : nums1) {
            System.out.println(num);
        }
        System.out.println("--------------------------");
        boolean[] nums2 = new boolean[3];
        for (boolean num : nums2) {
            System.out.println(num);
        }
        System.out.println("--------------------------");
        Object[] nums3 = new Object[3];
        for (Object num : nums3) {
            System.out.println(num);
        }
        System.out.println("--------------------------");
        String[] nums4 = new String[3];
        for (String num : nums4) {
            System.out.println(num);
        }

        System.out.println("--------------------------");
        // 创建数组方式2
        String[] names = {"zhangsan","lisi","wangwu"};
        System.out.println(names);  // [Ljava.lang.String;@4eec7777
        for (String name : names) {
            System.out.println(name);
        }
        System.out.println(names.length);

        // 索引：数组会按照顺序给数组中的数据进行连续的编号，也称之为下标，一旦确定无法修改
        // 数组中的元素和数据本身没有从属关系，数据并不是数组的一部分，数组只是一个存放数据的容器，数组中仅仅包含了对对象的引用（可以是对象）
        // 数组其实是一种数据结构，用于连续保存相同类型的数据
        System.out.println("--------------------------");
        // 二维数据：数组中包含数组（相当于表格）
        String[][] names1 = {{"zhangsan","lisi","wangwu"},{"zhangsan","lisi"},{"zhangsan"}};
        // 标准的二维数组
        String[][] names2 = new String[3][3];   // 三行三列的表格
        // 赋值
        names2[0][1] = "zhangsan";
        // 取值
        System.out.println(names2[0][1]);
        System.out.println("--------------------------");

        // 遍历所有数据
        for (int row = 0; row < 3; row++) {
            for (int col = 0; col < 3; col++) {
                System.out.print(names2[row][col] + " ");
            }
            System.out.println();
        }
    }
}

